Home
ISA POST cards in an IBM 5150 and IBM 5160


First, read the description of ISA POST cards at here.
An important take-away from that is that POST cards did not exist when the IBM 5150 (IBM PC) and IBM 5160 (IBM XT) were released.
POST cards were initially created for use in AT-class computers, computers that output POST codes, ones to I/O port 80h.

The IBM BIOS on IBM 5150 and IBM 5160 motherboards do not output POST codes to I/O port 80h.

Even if you substitute the IBM BIOS with something that does output POST codes to I/O port 80h, that does not mean that you will see those codes on your ISA POST card.
The following is what I observe with the two ISA POST cards pictured at here.
Different make-model cards may differ in behaviour.



Observation/Problem #1

On my IBM 5160, I create a ROM to replace the BIOS ROM in socket U18.  The only code in the replacement ROM, is code that sends 33h to port 80h.

7FF0: MOV AL,33H
7FF2: OUT 80H,AL
7FF4: HLT


At power on of the computer, I discover that:
- If my vintage ISA POST card is plugged in, I see "33", as expected.
- If instead, it is my modern ISA POST card that is plugged in, I see "FF".

Possible cause

The designer of my modern ISA POST card has not allowed for the fact that the ISA bus/signals/timing on IBM 5150 and IBM 5160 computers is slightly different to that on an IBM 5170 (IBM AT).



Observation/Problem #2

Even with my 'vintage' ISA POST card that can read {bytes sent to port 80h} on IBM 5150 and IBM 5160 computers, I discover another problem.

From experience, if I was to modify the IBM 5160 BIOS, inserting POST codes at various points in the POST, I would discover that as soon as the POST enabled/activated the DMA controller, that my vintage ISA POST card would no longer show the POST codes.  The answer is to disable the DMA controller before I send the POST code, but that has ramifications.

' On 5150/5160, disable the DMA controller
MOV AL,4
OUT 8,AL
' Now, output 33h to I/O port 80h
MOV AL,33H
OUT 80H,AL
' Halt the CPU
HLT

Why is disabling the DMA controller required?  I haven't figured that out yet.  In the IBM 5150/5160, I/O port 80h is mapped to the first register of the 74LS670 chip, a chip that is used in the IBM 5150/5160 to store four 4-bit page registers in support of DMA operations.  However, per note 15 at the bottom of here, the first page register is unused.

Maybe this has something to do with the design of my particular 'vintage' ISA POST card.

The problem in disabling the DMA controller is that RAM refreshing will no longer occur.  That is not an issue in the code above where I am using 33h to indicate a particular error and then I am halting the CPU.  But it will be for code (using RAM) that is outputting POST codes as progress indicators.